/**
 * 
 */
package org.statewalker.fsm.util;

import org.statewalker.fsm.FsmProcess;
import org.statewalker.fsm.IFsmProcessListener;

/**
 * A default "do-nothing" implementation of the {@link IFsmProcessListener}
 * interface. It could be used as a super-class to re-define just on or two
 * listener methods.
 * 
 * @author kotelnikov
 */
public class FsmProcessListener<S, E> implements IFsmProcessListener<S, E> {

    /**
     * 
     */
    public FsmProcessListener() {
        super();
    }

    /**
     * @see org.statewalker.fsm.IFsmProcessListener#beginState(org.statewalker.fsm.FsmProcess,
     *      java.lang.Object)
     */
    public void beginState(FsmProcess<S, E> process, S state) {
        //
    }

    /**
     * @see org.statewalker.fsm.IFsmProcessListener#endState(org.statewalker.fsm.FsmProcess,
     *      java.lang.Object)
     */
    public void endState(FsmProcess<S, E> process, S state) {
        //
    }

    /**
     * @see org.statewalker.fsm.IFsmProcessListener#onTransition(org.statewalker.fsm.FsmProcess,
     *      java.lang.Object, Object, java.lang.Object)
     */
    public void onTransition(FsmProcess<S, E> process, S prev, E event, S next) {
        // 
    }

}
